﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;

namespace _210528
{
    class Program
    {
        static void Main(string[] args)
        {
            five();

        }

        //1、生成0-5之间的随机小数，保留两位小数（必须是2位）。
        public static void one()
        {

            Random ran1 = new Random();
            for (int i = 0; i < 100; i++)
            {

                //Console.WriteLine(Math.Round(ran1.NextDouble() * 5,2));

                double a = ran1.NextDouble() * 5;
                Console.WriteLine(a.ToString("f2"));

            }
        }
        //2、生成4-7之间的随机小数，保留两位小数。
        public static void two()
        {
            Random ran2 = new Random();

            for (int i = 0; i < 10; i++)
            {
                double a = 4 + ran2.NextDouble() * 3;
                Console.WriteLine(a.ToString("f2"));
            }
        }

        //3、生成一个随机整型数组，长度是10，内容是1 ~10，数组内容不重复。
        public static void three()
        {
            Random ran3 = new Random();
            int[] arr1 = new int[10];

            //循环赋值
            for (int i = 0; i < arr1.Length; i++)
            {
                int a = ran3.Next(1, 11);
                arr1[i] = a;

                //遍历判断
                for (int j = 0; j < i; j++)
                {
                    if (arr1[i] == arr1[j])
                    {
                        i--;
                    }
                }

            }
            for (int i = 0; i < arr1.Length; i++)
            {

                Console.Write(arr1[i] + "   ");

            }
            Console.WriteLine();

        }

        //4、用户输入邮箱，请验证其合法性。
        //	1、邮箱一定需要 @符号
        //	2、根据 @符号分为两部分，“前半部分 @ 后半部分”，
        //		前半部分可以数字、字母、下划线、中划线、 .（符号点）。但是.（符号点）不能 用在开头也不能用在结尾；

        //        后半部分可以数字、字母、下划线、中划线、.（符号点），且符号点是必须的，至少出现一次，但不能连续出现，且符号点不能在开头，也不能在结尾。
        //		后半部分的符号点后面只能是：com、org、net、edu、mil、tv、biz、info

        public static void  four()
        {
            while (true)
            {
                Console.WriteLine("请输入邮箱：");
                string str = Console.ReadLine();
                if (Regex.IsMatch(str, @"^(\w+)(\.*)(\w+)@(\w+)(\.)(com|org|net|edu|mil|tv|biz|info)$"))
                {
                    Console.WriteLine(str);
                }
                else
                {

                    Console.WriteLine("格式有误");

                }
            }


        }


        //5、用户输入手机号码，请验证其合法性。
        //         手机号码规则：
        //  	最开头+86可有可无
        //  	13开头第三位是 0-9
        //  	14开头第三位是 5或7
        //  	15开头第三位是 0-9不包含4
        //  	17开头第三位是 678中的一个
        //  	18开头第三位是 0-9
        //  	剩下的8位，都是0-9的数字。
        public static void five()
        {
            while (true)
            {

                Console.WriteLine("请输入手机号：");
                string tel = Console.ReadLine();
                if (Regex.IsMatch(tel, @"^(\+86)?(13\d{1}|14[5-7]{1}|15[0-3|5-9]{1}|17[6-8]{1}|18\d{1})(\d{8})$"))
                {
                    Console.Write(tel);
                }
                else
                {
                    Console.WriteLine("输入有误");
                }
                Console.WriteLine();
            }

        }
    }
}
